home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / fapxtool / src / txl / txl.h < prev    next >
C/C++ Source or Header  |  1995-02-12  |  12KB  |  369 lines

  1. /**************** txl.h *******************/
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <ctype.h>
  7. #include <jctype.h>
  8. #include <jstring.h>
  9. #include <dos.h>
  10. #include <io.h>
  11. #include <fcntl.h>
  12. #include <math.h>
  13. #include <sys/types.h>
  14. #include <sys/stat.h>
  15. #include <conio.h>
  16. #include <time.h>
  17. #ifdef LSI_C
  18. #include <farstr.h>
  19. #else
  20. #include <malloc.h>
  21. #endif
  22.  
  23. #define NUL            '\0'
  24. #define TAB            0x09
  25. #define RET            0x0A
  26. #define CR            0x0D
  27. #define LF            0x0A
  28. #define TRUE        1
  29. #define FALSE        0
  30.  
  31. #define MAX_STR        9
  32. #define KFL_MAX        160
  33. #define KQ__MAX        80
  34. #define NP_DEL        4
  35. #define OP_MAX        16        /* 引数の最大数 */
  36.  
  37. /**** use in txfdir.h ***********/
  38. struct    find_t_s    {
  39.     char    attrib;
  40.     unsigned wr_time;
  41.     unsigned wr_date;
  42.     long    size;
  43.     char    name[13];
  44. };
  45.  
  46. struct    _foruminfo    {
  47.     int        key;                        /* キーコード                    */
  48.     int        next;                        /* 次の項目の配列番号            */
  49.     char    fname[15];                    /* フォーラムネーム(半角大文字) */
  50.     char    title[41];                    /* フォーラムの題名                */
  51. };
  52.  
  53. typedef struct priority {
  54.     char *str;                            /* 表示文字列                    */
  55.     char *name;                            /* 比較文字列                    */
  56.     int cmp;                            /* 比較文字数                    */
  57.     int pri;                            /* 優先順位(下位0-7ビット)        */
  58.                                         /* ↑ビット8はフォーラムフラグ    */
  59. } PRIORITY;
  60. /********************************/
  61.  
  62. #ifdef MAIN
  63. FILE *fpmes;
  64. char *inputfile;
  65. char *outputfile;
  66. char *line1, *line2, *line3;
  67. char *cfwork;
  68. char *cfptr[OP_MAX];
  69.  
  70. long int totalret=0;    /*    used by LCX    */
  71. long int totalretx=0;    /*    used by LCX    */
  72. long int totalsize=0;    /*    used by LCX    */
  73.  
  74. int sortoption = 0;
  75. int dirinfo = 0;
  76. int castname = 0;
  77. int dspfile = 0;
  78. int recursivedir = 0;
  79. int dspforumname = 0;
  80. int maxfcbs;
  81. int maxfinfo;
  82. int maxfinfodata;
  83. int maxexclude = 0;
  84. struct _foruminfo far *finfo;
  85. char *txfsetfile = "FAPXTXL.SET";
  86.  
  87. char sfstr[MAX_STR][48]={
  88.     "*:お知らせ            *:掲示板      *:電子会議",
  89.     "FORUM:",">GO ",
  90.     "- LIB ","LIB:",
  91.     "ID (改行のみ:自分のHP)\r\n:",
  92.     "HP:",
  93.     "ID (改行のみ:自分のパティオ)\r\n:",
  94.     "PATIO:"
  95.     };
  96. char *pfstr[MAX_STR] = {
  97.     NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
  98. /*                       0         1         2         3         4         5*/
  99. /*                       0123456789012345678901234567890123456789012345678901234567890 */
  100. char logstr_mes1[30]   ="%%   %%%%% ( %%%)   %%/%%   ";
  101. char logstr_mes2[15]   ="- ^4MES(%%):";
  102. char logstr_mes3[41]   ="%%%/%%%   ***%%%%%  $$$$$$$$$$$$$$$$  ";
  103. char logstr_mes4[42]   ="%%%%%/%%%%% ***%%%%%  $$$$$$$$$$$$$$$$ ";
  104. char logstr_dlib[42]   ="%%%%$ ***%%%%% %%/%%/%% %%%%%%% %%%% * ";
  105. char logstr_qlib[38]   ="%%%%$ ***%%%%% %%/%%/%% %%%%%%% * ";
  106. char logstr_wftowns[6] ="  #%";
  107. char logstr_hp[40]     ="%%%  [%%/%%/%% %%:%%]  ***%%%%%      ";
  108. char logstr_mail[44]   ="%% $$$$$$$$$$$$$$$$$  ***%%%%%  %%/%% %%:%%";
  109. char logstr_mail2[56]  ="%% $$$$$$$$$$$$$$$$$  ***%%%%%          %%/%%/%% %%:%%";
  110. char logstr_pcvm[44]   ="%%  -              PCV>***%%%%% %%/%% %%:%%";
  111. char logstr_pcvm2[56]  ="%%  -                 PCV>***%%%%%      %%/%%/%% %%:%%";
  112. char logstr_wide[44]   ="%%  **** GATE         ***%%%%%  %%/%% %%:%%";
  113. char logstr_wide2[56]  ="%%  **** GATE         ***%%%%%          %%/%%/%% %%:%%";
  114. #if 0
  115. char logstr_ffmtop[22] ="^1/%%[^1]^3(DL%%-%%%";
  116. #endif
  117. char logstr_fravtop[16]="%%/%% DL%% #%%%";
  118. char logstr_ffsutop[72]="%%/%%$$$$$$$$$$$$$$$$$$$$.$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$ ***%%%%% ($%-";
  119. char logstr_mlist[80]  ="$%%  $$$$$$$$$$$$$$$$$%%/%%  $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&";
  120. char logstr_fgallib[39]="&& %% %%%% ***%%%%% %%/%%/%% %%%%%%% *";
  121.  
  122. /*
  123.  
  124. - FFMHOB  MES(20):【交 流】自己紹介の場、『無節荘』第10館 92/05/13 -
  125. - FTOWNS1  MES( 7):Gamer’s Q&A(2) 92/05/13 -
  126. 20     919 (   5)   05/13   【交 流】自己紹介の場、『無節荘』第10館
  127. 005/005   XXX00000  ハンドル      ストック会議室にも
  128. ( 3)   92/09/25 23:08
  129. 01453/01453 PFG02442  中谷 友彦    テスト♪てすと♪
  130. ( 2)   92/09/22 22:56
  131.  
  132. ID (改行のみ:自分のHP)
  133. :PEE01244
  134. パスワード
  135. 20     999 (   0)   05/16   [交 流]自己紹介の場、『無節荘』第10館
  136.  250  PFG02442 92/04/05   25408   25 B TXF136E .EXE テキストファイル フォーマッタ Ver1.36e
  137. 12/12[TOWNS] ぼむぼむ                 (DL 5-433)
  138. 12/08[TOWNS]  背景画ランダムセレクター     (DL 4-222)
  139. 08/31 Tue DL04 #349 ぴー              祝! FRAV
  140.  
  141. 120  [92/05/16 21:14]  PEE01244      CATLOG.EXP使ってみました<Yama-chan
  142. 09/22 [DOS汎]    XTR150DF.LZH テキスト整形ツールXTR V1.50d/フルセット MHD00147 (#5- 32)
  143. -------------------------------------------------------------------------------
  144.  6  -              PCV>ZZZ99999 04/01 07:29
  145.     題名:PC-VANからのテストだよ~ん
  146.  
  147. PCVAN-Message-Id: #05121046
  148. PCVAN-Date: 93/04/01 07:21:12
  149. -------------------------------------------------------------------------------
  150.  1  -              PCV>ZZZ00000 04/01 15:05
  151.     題名:HELLO
  152.  
  153. PCVAN-Message-Id: #05121811
  154. PCVAN-Date: 93/04/01 12:45:16
  155. -------------------------------------------------------------------------------
  156.  2  INET GATE         WID00101  03/03 12:47
  157.  4  WIDE GATE         WID00100  03/22 09:19
  158.     題名:MAIL from WIDE for FAPX
  159.  
  160. Date: Mon, 22 Mar 93 08:56:23 JST
  161. From: naka@cms101.cmlab.densi.kansai-u.ac.jp
  162. To: PEE01244@niftyserve.or.jp
  163. Cc: PEA03123@niftyserve.or.jp
  164. -------------------------------------------------------------------------------
  165. 番号  送信者          日付     題名                                    識別子
  166.   1   **********   04/08  B NEWSARA.LZH 未だできんんんんんんん      ILDFTINC
  167. */
  168.  
  169.  
  170. long int log_tline=0;
  171. char log_fname[16]="UNKNOWN";
  172. char log_pname[16]="";
  173. char log_idstr[16]="        ";
  174. char log_libstr[4];
  175. int  log_libno;
  176. int  log_downno;
  177. char log_downname[16]="";
  178. char log_docfile[16]="";
  179. char log_titlestr[48];
  180. char log_resstr[16]="";
  181. char log_resp[12]="        ";
  182. char log_handle[20]="                ";
  183. char log_rhandle[20]="";
  184. int  log_hpstyle = 0;
  185. unsigned short log_hpchr = 0;
  186. int  log_mesno;
  187. char log_reply[8];
  188. char *log_bufptr;
  189.  
  190. char filechr[32]={0,0,0,0,0x5f,0x086,0x0ff,0x0c0,0x0ff,0x0ff,0x0ff,0x0e3,0x0ff,
  191.                     0x0ff,0x0ff,0x0f6,0,0,0,0,0x03,0x0ff,0x0ff,0x0ff,0x0ff,
  192.                     0x0ff,0x0ff,0x0ff,0,0,0,0};
  193.  
  194. char npcut_front[4]  ={0x1b,0x26,0x36,0x41};
  195. char npcut_tellstr[5]={0x1b,0x26,0x36,0x40,0};
  196. char npcut_nifend[21]={ 0x18,0x1f,0x40,0x40,0x0e,0x20,0x7f,0x7f,0x21,0x4c,
  197.                         0x3e,0x44,0x3c,0x40,0x40,0x40,0x40,0x20,0x68,0x40,0};
  198. char npcut_niffirst[9]={0x1b,0x23,0x33,0x1b,0x33,0x1b,0x26,0x32,0};
  199. char npcut_weather[10]={0x1b,0x2d,0x57,0x0e,0x21,0x4c,0x20,0x68,0x40,0};
  200. int weatherflg = 0;
  201. int make_val = 0 ;
  202.  
  203. #endif
  204.  
  205. extern FILE *fpmes;
  206. extern char *inputfile;
  207. extern char *outputfile;
  208. extern char *line1, *line2, *line3;
  209. extern char *cfwork;
  210. extern char *cfptr[OP_MAX];
  211.  
  212. extern long int totalret;    /*    used by LCX    */
  213. extern long int totalretx;    /*    used by LCX    */
  214. extern long int totalsize;    /*    used by LCX    */
  215. extern int sortoption;
  216. extern int dirinfo;
  217. extern int castname;
  218. extern int dspfile;
  219. extern int recursivedir;
  220. extern int dspforumname;
  221. extern int maxfcbs;
  222. extern int maxfinfo;
  223. extern int maxfinfodata;
  224. extern int maxexclude;
  225. extern struct _foruminfo far *finfo;
  226. extern char *txfsetfile;
  227.  
  228. extern char sfstr[MAX_STR][48];
  229. extern char *pfstr[MAX_STR];
  230. extern char *dlib_bufptr;
  231. extern long int log_tline;
  232. extern char log_fname[16];
  233. extern char log_pname[16];
  234. extern char log_idstr[16];
  235. extern char log_libstr[4];
  236. extern int  log_libno;
  237. extern int  log_downno;
  238. extern char log_downname[16];
  239. extern char log_docfile[16];
  240. extern char log_titlestr[48];
  241. extern char log_resstr[16];
  242. extern char log_resp[12];
  243. extern char log_handle[20];
  244. extern char log_rhandle[20];
  245. extern int  log_hpstyle;
  246. extern unsigned short log_hpchr;
  247. extern int  log_mesno;
  248. extern char log_reply[8];
  249. extern char *log_bufptr;
  250.  
  251. extern char logstr_mes1[30];
  252. extern char logstr_mes2[15];
  253. extern char logstr_mes3[41];
  254. extern char logstr_mes4[42];
  255. extern char logstr_dlib[42];
  256. extern char logstr_qlib[38];
  257. extern char logstr_wftowns[6];
  258. extern char logstr_hp[40];
  259. extern char logstr_mail[44];
  260. extern char logstr_mail2[56];
  261. extern char logstr_pcvm[44];
  262. extern char logstr_pcvm2[56];
  263. extern char logstr_wide[44];
  264. extern char logstr_wide2[56];
  265. extern char logstr_ffmtop[22];
  266. extern char logstr_fravtop[16];
  267. extern char logstr_ffsutop[72];
  268. extern char logstr_mlist[80];
  269. extern char logstr_fgallib[39];
  270.  
  271. extern char filechr[32];
  272. extern char npcut_front[4];
  273. extern char npcut_tellstr[5];
  274. extern char npcut_nifend[21];
  275. extern char npcut_niffirst[9];
  276. extern char npcut_weather[10];
  277. extern int  weatherflg;
  278. extern int  make_val;
  279.  
  280. /*  external function */
  281.  
  282. int sort_date(struct find_t_s *x, struct find_t_s *y);
  283. int sort_size(struct find_t_s *x, struct find_t_s *y);
  284. int sort_name(struct find_t_s *x, struct find_t_s *y);
  285. int sort_ext(struct find_t_s *x, struct find_t_s *y);
  286. PRIORITY *howpri(struct find_t_s *z);
  287. int sort_fapx(struct find_t_s *x, struct find_t_s *y);
  288. char *castlow(char *str);
  289. char *castlow1(char *str);
  290. char *castlow2(char *str);
  291. void idlog(char *fname, FILE *fp);
  292. void catloglib(char *fname, FILE *fp);
  293. void liblist(char *fname, FILE *fp);
  294. void rtnmes(char *fname, FILE *fp);
  295. void catlogmes(char *fname, FILE *fp);
  296. void catlogmail(char *fname, FILE *fp);
  297. void subdir(struct find_t_s *fcbs, FILE *fp, char *name, int base);
  298. void dirmain(struct find_t_s *fcbs, FILE *fp, unsigned int attr, long *para);
  299. void dir(int dirsort, int filesort);
  300. void dirdriver(char *val[]);
  301. int getkeyid(char *str);
  302. void readmyforum(char *fpath);
  303. void readtitle(char *fpath, long *para);
  304. int dspmyforum(char *fname, FILE *fp);
  305. char *get_filename(char *wildcard);
  306. void lcx (char *lcxinputfile);
  307. void lcxdriver(char *param[]);
  308. void logfindstr(FILE *input);
  309. void logs(void);
  310. void loginit(void);
  311. void logdriver(char *val[]);
  312. int matchstr(char *form, char far *txtptr);
  313. int linestyle(void);
  314. void get_forum(int type);
  315. void get_libno(int type);
  316. void get_titlestr(void);
  317. void del_tailspace(char *str, int len);
  318. void meschk(int style);
  319. char *setdataexp(char kind);
  320. void get_downname(void);
  321. void dlibchk(int style);
  322. void get_forum_overrun(void);
  323. void ffsutopchk(int style);
  324. void ffmtopchk(int style);
  325. void fravtopchk(void);
  326. int get_hpstyle(char *id, int org);
  327. void hpchk(void);
  328. void mailchk(int style);
  329. void widegatechk(void);
  330. void maillistchk(void);
  331. void fgalchk(void);
  332. void errexit(char *errmes);
  333. void init(char *name);
  334. int main(int argc, char *argv[]);
  335. void result(void);
  336. void make_new_name(char *tellptr);
  337. int findfront(FILE **input, FILE **output);
  338. int findtell(int endflg, FILE **input, FILE **output);
  339. void npcut(void);
  340. void npcutinit(void);
  341. void npcutdriver(char *val[]);
  342. int chkoprnd(char next);
  343. void swchk(int count, char *val[]);
  344. void cfexpand(int count, char *val[]);
  345. void expand_passwd(char *val[]);
  346. void compress_passwd(char *val[]);
  347. void dlldriver(char *val[]);
  348. void rtndriver(char *val[]);
  349. void bottomcut(char *val[]);
  350. void bottomdsp(char *val[], int level);
  351. void craftname(char *val[], int (*func)(char *name, FILE *fw));
  352. int  craftfb(char *forumname, FILE *fw);
  353. int  craftbf(char *basename, FILE *fw);
  354. void settime(char *tmstr);
  355. void setdate(char *dtstr);
  356.  
  357. #ifndef LSI_C
  358. #define farfree(a)            _ffree(a)
  359. #define farmalloc(a)        _fmalloc(a)
  360. #define far_strcpy(a,b)        _fstrcpy(a,b)
  361. #define far_strncpy(a,b,c)    _fstrncpy(a,b,c)
  362. #define far_strcmp(a,b)        _fstrcmp(a,b)
  363. #define far_strncmp(a,b,c)    _fstrncmp(a,b,c)
  364. #endif
  365.  
  366. /* DLL 化対策 */
  367. extern void Exit(int val);
  368.